Ext.define('Service.module.view.ModuleView', {
    extend: 'Ext.view.View',
    
    id : 'Service_module_view_ModuleView',
    alias : 'widget.Service_module_view_ModuleView',
    
    itemSelector: 'div.item',
    parentRecord : null,
    containerMenu : null,
    style : {
    	backgroundColor : 'white'
    },
    itemMenu : null,
    invalidModuleIcon : Constants.SER_RES_PATH + 'icon/share'+ '/invalid_module.png',
    selectedRecord : null,
    
    getSelectedRecord : function(){
    	return this.selectedRecord;
    },
    
    getParentRecord : function(){
    	return this.parentRecord;
    },
    
    addModule : function(record){
    	var me = this;
    	me.getStore().add(record);
    },
    
    delModule : function(record){
    	var me = this;
    	me.getStore().remove(record);
    	me.refresh();
    },
    
    setStoreDatas : function(rec,records){
    	var me = this;
    	var store = me.getStore();
    	if(!store){
    		store = new Ext.data.Store({
    			model : 'Service.module.model.ModuleModel'
    		});
    	}
    	me.parentRecord = rec;
    	store.loadData(records);
    	console.log(records);
    },
    
    showItemMenu : function(view,rec,item,index,evt,opts){
    	var me = this;
    	evt.stopEvent();
    	if(me.itemMenu){
    		me.selectedRecord = rec;
    		me.selectedRecord.set('pname',me.parentRecord.get('moduleName'));
    		var valid = rec.get('validFlag');
    		if(valid == 1){
    			me.itemMenu.items.getAt(4).setDisabled(true);
    			me.itemMenu.items.getAt(5).setDisabled(false);
    		}
    		else{
    			me.itemMenu.items.getAt(4).setDisabled(false);
    			me.itemMenu.items.getAt(5).setDisabled(true);
    		}
    		me.itemMenu.showAt(evt.getXY());
    	}
    },
    
    showContainerMenu : function(view,evt,opts){
    	evt.stopEvent();
    	var me = this;
    	if(me.containerMenu){
    		me.containerMenu.showAt(evt.getXY());
    	}
    	
    },
    
    initComponent: function(cfg) {
        var me = this;
        
        me.containerMenu = new Ext.menu.Menu({
        	items : [
        		{
        			text : '添加模块',
        			module : 'module',
        			force_permission : 'addModule',
        			action : 'showModuleAddWindow',
        			plugins : [
        				SessionPermissionPlugin
        			]
        		}
        	]
        });
        
        me.itemMenu = new Ext.menu.Menu({
        	items : [
        		{
        			text : '添加模块',
        			module : 'module',
        			force_permission : 'addModule',
        			action : 'showModuleAddWindow',
        			plugins : [
        				SessionPermissionPlugin
        			]
        		},
        		{
        			text : '修改模块',
        			module : 'module',
        			force_permission : 'chgModule',
        			action : 'showModuleChgWindow',
        			plugins : [
        				SessionPermissionPlugin
        			]
        		},
        		{
        			text : '删除模块',
        			module : 'module',
        			action : 'delModule',
        			plugins : [
        				SessionPermissionPlugin
        			]
        		},
        		'-',
        		{
        			text : '启用模块',
        			module : 'module',
        			action : 'startModule',
        			plugins : [
        				SessionPermissionPlugin
        			]
        		},
        		{
        			text : '停用模块',
        			module : 'module',
        			action : 'stopModule',
        			plugins : [
        				SessionPermissionPlugin
        			]
        		},
        		'-',
        		{
        			text : '维护Action',
        			module : 'module',
        			force_permission : 'addAction',
        			plugins : [
        				SessionPermissionPlugin
        			]
        		}
        	]
        });
        
        Ext.apply(me,{
        	tpl: [
		        '<tpl for=".">',
		            '<div class="item" style="float:left;padding:10px;margin:10px" title="{moduleText}">',
		            	'<div class="module-icon-container" style="background-image:url({bigIcon});width:76px;height:76px" title="{remark}">' +
	            			'<tpl if="validFlag==0">' +
	            				'<img src="'+me.invalidModuleIcon+'"/>' +
	            			'</tpl>' +
            			'</div>' +
		                '<h3 style="margin-left:10px;margin-top:3px;width: 60px;height:19px;text-overflow: ellipsis;overflow: hidden;white-space: nowrap;text-align:left">{moduleText} </h3>',
		            '</div>',
		        '</tpl>'
		    ],
        	overItemCls: 'x-item-over',
            trackOver: true,
            singleSelect : true,
            listeners : {
            	containercontextmenu : {
            		fn  : me.showContainerMenu
            	},
            	itemcontextmenu : {
            		fn : me.showItemMenu
            	}
            }
        });
        me.callParent(arguments);
    }
});